#include "widget.h"
#include "./ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_pushButton_clicked()
{
    // 获取起始和结束时间（变量命名优化）
    QDateTime startDateTime = ui->dateTimeEdit->dateTime();
    QDateTime endDateTime = ui->dateTimeEdit_2->dateTime();

    // 确保时间顺序正确（处理负值问题）
    if (startDateTime > endDateTime) {
        std::swap(startDateTime, endDateTime); // 交换时间顺序
    }

    // 计算精确的时间差
    const qint64 totalSeconds = startDateTime.secsTo(endDateTime);
    const int totalHours = static_cast<int>(totalSeconds / 3600);

    // 分解天数和剩余小时数
    const int days = totalHours / 24;
    const int hours = totalHours % 24;

    // 使用更高效的字符串格式化方式
    QString text = QStringLiteral("爱你已经持续了 %1 天 零 %2 个小时！")
                       .arg(days)
                       .arg(hours);

    ui->label->setText(text);
}

